package me.zhengjie.vo;


/**
 * 消息平台发送对象VO
 */
public class MessageVO {

    private String sendUserid;                 //String	发送人员ID	是
    private String sendName;                   //String	发送人员姓名	是
    private String ssystemCode;                //String	发送系统编码	是 [1]
    private String ticket;                     //String	系统秘钥	是

    private String messageTitle;               //String	消息标题	否 [2]
    private String messageContent;             //String	消息内容	否 [3]
    private String businessCode;               //String	业务编码	是 [4]
    private String areaCode;                   //String	行政区划编码	是 [5]
    private String sendType;                   //String	发送类型	是 [6]
    private String inType;                     //接入方式 站内发送信息用 "01" -- ”websocket接入“  "ajax轮询接入" -- “02”
    private String messageType;                //String	消息类型	否 [7]
    private String templateCode;               //String	模板标识	否 [8]
    private String isGroupSend;                //Boolean	是否分组发	否 [9]
    private String tagId;                      //String	分组标签	否 [10]
    private String isToAll;                    //Boolean	是否发送所有人	否 [11]
    private String isSameChannelContent;       //Boolean	渠道发送内容是否一致	否 [12]
    private String isSameBatchContent;         //Boolean	批量发送内容是否一致	否 [13]
    private String file;                       //File	文件表单名称	否 [14]
    private String mediaIds;                   //String	素材ID	否 [15]
    private String fileUrls;                   //String	文件url	否 [16]
    private String isStore;                    //Boolean	是否存储消息内容	否 [17]
    private String isEncrypt;                  //Boolean	是否对消息内容加密	否 [18]
    private String extendField;                //Boolean	扩展字段	否 [19]
    private String items;                      //JSON	消息子项	否(详细参见item参数)[20]

    /**
     * 通用调用类
     * @param messageTitle
     * @param messageContent
     * @param businessCode
     * @param areaCode
     * @param sendType
     * @param messageType
     * @param templateCode
     * @param isGroupSend
     * @param tagId
     * @param isToAll
     * @param isSameChannelContent
     * @param isSameBatchContent
     * @param file
     * @param mediaIds
     * @param fileUrls
     * @param isStore
     * @param isEncrypt
     * @param extendField
     * @param items
     */
    public MessageVO(String messageTitle, String messageContent, String businessCode,
                     String areaCode, String sendType, String messageType,
                     String templateCode, String isGroupSend, String tagId, String isToAll,
                     String isSameChannelContent, String isSameBatchContent,
                     String file, String mediaIds, String fileUrls,
                     String isStore, String isEncrypt, String extendField, String items) {
        this.messageTitle = messageTitle;
        this.messageContent = messageContent;
        this.businessCode = businessCode;
        this.areaCode = areaCode;
        this.sendType = sendType;
        this.messageType = messageType;
        this.templateCode = templateCode;
        this.isGroupSend = isGroupSend;
        this.tagId = tagId;
        this.isToAll = isToAll;
        this.isSameChannelContent = isSameChannelContent;
        this.isSameBatchContent = isSameBatchContent;
        this.file = file;
        this.mediaIds = mediaIds;
        this.fileUrls = fileUrls;
        this.isStore = isStore;
        this.isEncrypt = isEncrypt;
        this.extendField = extendField;
        this.items = items;
    }

    /**
     * 发送RTX用
     * @param sendUserid
     * @param sendName
     * @param ssystemCode
     * @param ticket
     * @param messageTitle
     * @param messageContent
     * @param businessCode
     * @param areaCode
     * @param sendType    消息发送类型（sendType）为 “7” RTX推送统一调用消息发送接口
     * @param messageType 消息类型(messageType)为:
     *                    即时消息(IM): 8
     *                    消息提醒: 9
     *                    广播: 10
     * @param items"items": [{"rtxId":"renxin"}]
     */
    public MessageVO(String sendUserid, String sendName, String ssystemCode, String ticket,
                     String messageTitle, String messageContent, String businessCode, String areaCode,
                     String sendType, String messageType, String items) {
        this.sendUserid = sendUserid;
        this.sendName = sendName;
        this.ssystemCode = ssystemCode;
        this.ticket = ticket;
        this.messageTitle = messageTitle;
        this.messageContent = messageContent;
        this.businessCode = businessCode;
        this.areaCode = areaCode;
        this.sendType = sendType;
        this.messageType = messageType;
        this.items = items;
    }

    /**
     * 发送短信用
     * @param sendUserid
     * @param sendName
     * @param ssystemCode
     * @param ticket
     * @param messageContent
     * @param businessCode  用消息平台所需要传入的业务编码，可用作标志业务名称、业务板块名称, 全局唯一。详细查询：配置管理 - 业务编码管理
     * @param areaCode
     * @param sendType      消息发送类型（sendType）为 “3”
     * @param templateCode  模板标识
     * @param items [{\"receiveUserid\":\"22\",\"phone\":\"15108246606\",\"rsystemCode\":\"AUTH\"},{\"receiveUserid\":\"33\",\"phone\":\"15882449573\",\"rsystemCode\":\"PORTAL\"}]
     */
    public MessageVO(String sendUserid, String sendName, String ssystemCode, String ticket,
                     String messageContent, String businessCode, String areaCode, String sendType,
                     String templateCode, String items) {
        this.sendUserid = sendUserid;
        this.sendName = sendName;
        this.ssystemCode = ssystemCode;
        this.ticket = ticket;
        this.messageContent = messageContent;
        this.businessCode = businessCode;
        this.areaCode = areaCode;
        this.sendType = sendType;
        this.templateCode = templateCode;
        this.items = items;
    }


    /**
     * 发送邮件用
     * @param sendUserid
     * @param sendName
     * @param ssystemCode
     * @param ticket
     * @param businessCode
     * @param areaCode
     * @param sendType           消息发送类型（sendType）为 “1” -- 邮件
     * @param isSameBatchContent 是否使用相同内容
     * @param items 邮件：[{"email":"1244203665@qq.com","messageTitle":"邮件渠道发送","messageContent":"邮件渠道发送测试"},
     *                    {"email":"zhang_javatestmail@163.com@qq.com","messageTitle":"邮件渠道发送2","messageContent":"邮件渠道发送测试啦！"}]
     *
     *
     */
    public MessageVO(String sendUserid, String sendName, String ssystemCode, String ticket,
                       String businessCode, String areaCode, String sendType, String isSameBatchContent,
                       String items) {
        this.sendUserid = sendUserid;
        this.sendName = sendName;
        this.ssystemCode = ssystemCode;
        this.ticket = ticket;
        this.businessCode = businessCode;
        this.areaCode = areaCode;
        this.sendType = sendType;
        this.isSameBatchContent = isSameBatchContent;
        this.items = items;
    }

    /**
     * 发送站内信息使用
     * @param ssystemCode
     * @param ticket
     * @param businessCode
     * @param areaCode
     * @param sendType        “0” -- 站内
     * @param isSameBatchContent
     * @param items 站内：[{"receiveUserid": "22","rsystemCode": "AUTH"}, {"receiveUserid": "33","rsystemCode": "PORTAL"}]
     * @param inType 前端接入类型 01 -- websocket   02 -- ajax 轮询接入
     */
    public MessageVO(String ssystemCode, String ticket,
                     String businessCode, String areaCode, String sendType, String isSameBatchContent,
                     String items, String inType) {
        // this.sendUserid = sendUserid;
        // this.sendName = sendName;
        this.ssystemCode = ssystemCode;
        this.ticket = ticket;
        this.businessCode = businessCode;
        this.areaCode = areaCode;
        this.sendType = sendType;
        this.isSameBatchContent = isSameBatchContent;
        this.items = items;
        this.inType = inType;
    }



    public String getSendUserid() {
        return sendUserid;
    }

    public MessageVO setSendUserid(String sendUserid) {
        this.sendUserid = sendUserid;
        return this;
    }

    public String getSendName() {
        return sendName;
    }

    public MessageVO setSendName(String sendName) {
        this.sendName = sendName;
        return this;
    }

    public String getSsystemCode() {
        return ssystemCode;
    }

    public MessageVO setSsystemCode(String ssystemCode) {
        this.ssystemCode = ssystemCode;
        return this;
    }

    public String getTicket() {
        return ticket;
    }

    public MessageVO setTicket(String ticket) {
        this.ticket = ticket;
        return this;
    }

    public String getMessageTitle() {
        return messageTitle;
    }

    public MessageVO setMessageTitle(String messageTitle) {
        this.messageTitle = messageTitle;
        return this;
    }

    public String getMessageContent() {
        return messageContent;
    }

    public MessageVO setMessageContent(String messageContent) {
        this.messageContent = messageContent;
        return this;
    }

    public String getBusinessCode() {
        return businessCode;
    }

    public MessageVO setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public String getAreaCode() {
        return areaCode;
    }

    public MessageVO setAreaCode(String areaCode) {
        this.areaCode = areaCode;
        return this;
    }

    public String getSendType() {
        return sendType;
    }

    public MessageVO setSendType(String sendType) {
        this.sendType = sendType;
        return this;
    }

    public String getMessageType() {
        return messageType;
    }

    public MessageVO setMessageType(String messageType) {
        this.messageType = messageType;
        return this;
    }

    public String getTemplateCode() {
        return templateCode;
    }

    public MessageVO setTemplateCode(String templateCode) {
        this.templateCode = templateCode;
        return this;
    }



    public String getTagId() {
        return tagId;
    }

    public MessageVO setTagId(String tagId) {
        this.tagId = tagId;
        return this;
    }

    public String getIsGroupSend() {
        return isGroupSend;
    }

    public MessageVO setIsGroupSend(String isGroupSend) {
        this.isGroupSend = isGroupSend;
        return this;
    }

    public String getIsSameChannelContent() {
        return isSameChannelContent;
    }

    public MessageVO setIsSameChannelContent(String isSameChannelContent) {
        this.isSameChannelContent = isSameChannelContent;
        return this;
    }

    public String getIsSameBatchContent() {
        return isSameBatchContent;
    }

    public MessageVO setIsSameBatchContent(String isSameBatchContent) {
        this.isSameBatchContent = isSameBatchContent;
        return this;
    }

    public String getFile() {
        return file;
    }

    public MessageVO setFile(String file) {
        this.file = file;
        return this;
    }

    public String getMediaIds() {
        return mediaIds;
    }

    public MessageVO setMediaIds(String mediaIds) {
        this.mediaIds = mediaIds;
        return this;
    }

    public String getFileUrls() {
        return fileUrls;
    }

    public MessageVO setFileUrls(String fileUrls) {
        this.fileUrls = fileUrls;
        return this;
    }


    public String getExtendField() {
        return extendField;
    }

    public MessageVO setExtendField(String extendField) {
        this.extendField = extendField;
        return this;
    }

    public String getItems() {
        return items;
    }

    public MessageVO setItems(String items) {
        this.items = items;
        return this;
    }

    public String getIsToAll() {
        return isToAll;
    }

    public MessageVO setIsToAll(String isToAll) {
        this.isToAll = isToAll;
        return this;
    }

    public String getIsStore() {
        return isStore;
    }

    public MessageVO setIsStore(String isStore) {
        this.isStore = isStore;
        return this;
    }

    public String getIsEncrypt() {
        return isEncrypt;
    }

    public MessageVO setIsEncrypt(String isEncrypt) {
        this.isEncrypt = isEncrypt;
        return this;
    }

    public String getInType() {
        return inType;
    }

    public MessageVO setInType(String inType) {
        this.inType = inType;
        return this;
    }
}
